<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="text" indent="no" omit-xml-declaration="yes"/>
  <xsl:param name="format"/>
  <xsl:preserve-space elements="text"/>
  
  <xsl:template match="/">
    <xsl:choose>
      <xsl:when test="$format='fasta'">
        <xsl:apply-templates mode="seq"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:apply-templates mode="exp"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

  <xsl:template match="table" mode="seq">
    <xsl:for-each select="row">
      &gt; <xsl:value-of select="data"/><xsl:text>
      </xsl:text>
<xsl:value-of select="data[1]"/>
    </xsl:for-each>
  </xsl:template>

  <xsl:template match="table" mode="exp">
    <xsl:apply-templates mode="exp" select="head/data"/>
    <xsl:for-each select="row">
      <xsl:apply-templates mode="exp"/>
    </xsl:for-each>
  </xsl:template>

  <xsl:template match="data" mode="exp">
    <xsl:value-of select="normalize-space(.)"/>
    <xsl:choose>
      <xsl:when test="position()!=last()"><xsl:text>	</xsl:text></xsl:when>
      <xsl:otherwise><xsl:text>
      </xsl:text></xsl:otherwise>
    </xsl:choose>
  </xsl:template>

</xsl:stylesheet>
